#ifndef __MONSTER_H__
#define __MONSTER_H__

#include <PA9.h>

#define black 32768



class Enemy
{
private:

	//===stats===//
	int damage;
	int hp;
	int speed;
	
	//===Coords===//
	s32 x, y;       //monster current x,y
	s32 px, py;     //player current x,y
	s32 ox, oy;     //player old x,y
	s32 sosx, sosy; //scroll offset x,y
	
	// for wandering
	bool spawn;
	bool left; 
	int wand;
	
	//combat
	bool hit;
	
	//retreat
	int counter; // simple counter variable
	bool ret;
	
	bool award;
	
	
		
public:
	Enemy();
	Enemy(int, int, int); // monster type, x cord, y cord;
	//void attack(int);
	bool attack(int);
	void wander(int);	
	void updatePosition(int, s32, s32, s32, s32, s32, s32); //  old x/y, scrollOffsetX/Y, playerx/y
	void gethurt(int);
	bool checkdead();
	bool aggro();
	bool attackRange();
	void pursue();
	void retreat(int);
	s32 getx() {return x;}
	s32 gety() {return y;}
	int gethp() {return hp;}
	u8 MonsterCheckCol(u8, u8);
	void setHitFlag() {hit = true;}
	void unsetHitFlag() {hit = false;}
	bool getHitFlag() {return hit;}
	void setSpawnFlag() {spawn = true;}
	void unsetSpawnFlag() {spawn = false;}
	bool getSpawnFlag() {return spawn;}
	void resetCounter() {counter = 0;}
	bool getRet() {return ret;}
	bool invisible();
	bool getAward() {return award;}
	void giveAward() {award = true;}
		
};


#endif  //__MONSTER_H__

